﻿/**
 * Скрипт содержащий все логику взаимодействия с авторизованным пользователем
 */

$(document).ready(function () {


    // Биндим тултипы блокнота сайтов
    $(".site").popover({
        animation: true,
        placement: 'right',
        trigger: 'hover',
        title: function () {
            return $(this).data("title");
        },
        content: function () {
            return $(this).data("description");
        }
    });

    // Биндим раскрывание и прятание различных строк пользовательского тулбара
    $("#expandUserInfoButton").click(function () {
        $("#userWorkbench").slideToggle("slow");
        $(this).toggleClass("toggleButtonActive")
    });
    $("#toggleSecondRowButton").click(function(){
        var secondVisible = $("#secondRow").css("display") != "none";
        var thirdVisible = $("#thirdRow").css("display") != "none";
        if (!secondVisible)
        {
            $("#secondRow").slideDown("slow");
            $("#toggleSecondRowButton").addClass("toggleButtonActive");
        }
        else {
            if (thirdVisible){
                $("#thirdRow").slideUp("slow");
                $("#toggleThirdRowButton").removeClass("toggleButtonActive");
            }
            $("#secondRow").slideUp("slow");
            $("#toggleSecondRowButton").removeClass("toggleButtonActive");
        }
    });
    $("#toggleThirdRowButton").click(function(){
        var thirdVisible = $("#thirdRow").css("display") != "none";
        if (thirdVisible){
            $("#thirdRow").slideUp("slow");
            $(this).removeClass("toggleButtonActive");
        } else {
            $("#thirdRow").slideDown("slow");
            $(this).addClass("toggleButtonActive");
        }
    });

    // Обновляем состояния всех счетчиков обновлений
    updateWorkbenchItemCountBlock(false);

    // Анимация иконок при наведении
    $(".workbenchItem").mouseenter(function(e){
        $(this).find(".itemImage").stop(true,true).animate({
            top: "-5px"
        },100);
    });
    $(".workbenchItem").mouseleave(function(e){
        $(this).find(".itemImage").stop(true,true).animate({top: "0px"},100);
    });

    /**
     * Устанавливаем обработчики клика по иконке добавления и удаления визитки из визитницы
     */
    $(".addToCatalog").click(function(e){
        var cardDiv = $(this).parents(".cardImage").first();
        var cardId = $(cardDiv).data("id");
        $(this).fadeOut("slow");
        var removeImg = $(cardDiv).find(".removeFromCatalog").first();
        global.ajax({
            url: "/Account/AddCard",
            params: {
                id: cardId
            },
            success: function(data){
                global.showNotification("Визитка успешно добавлена в вашу визитницу",5000);
                incrementWorkbenchItemCountBlock("MyCardsItem");
                updateWorkbenchItemCountBlock(false);
                removeImg.fadeIn("slow");
            }
        });
    });
    $(".removeFromCatalog").click(function(e){
        var cardDiv = $(this).parents(".cardImage").first();
        var cardId = $(cardDiv).data("id");
        $(this).fadeOut("slow");
        var addImg = $(cardDiv).find(".addToCatalog").first();
        global.ajax({
            url: "/Account/RemoveCard",
            params: {
                id: cardId
            },
            success: function(data){
                global.showNotification("Визитка успешно удалена из вашей визитницы",5000);
                incrementWorkbenchItemCountBlock("MyCardsItem");
                updateWorkbenchItemCountBlock(false);
                addImg.fadeIn("slow");
            }
        });
    });

    /**
     * Обработчик добавления и удаления объявления в избранное по клике на иконку звездочки у объявления
     */
    $(".addFave").click(function(e){
        var adsDiv = $(this).parents(".ads").first();
        var adsId = $(adsDiv).data("id");
        $(this).fadeOut("slow");
        var removeImg = $(adsDiv).find(".removeFave").first();
        global.ajax({
            url: "/Catalog/Ads/AddFavourites",
            params: {
                id: adsId
            },
            success: function(data){
                global.showNotification("Объявление успешно добавлено в избранное",5000);
                removeImg.fadeIn("slow");
            }
        });
    });
    $(".removeFave").click(function(e){
        var adsDiv = $(this).parents(".ads").first();
        var adsId = $(adsDiv).data("id");
        $(this).fadeOut("slow");
        var addImg = $(adsDiv).find(".addFave").first();
        global.ajax({
            url: "/Catalog/Ads/RemoveFavourites",
            params: {
                id: adsId
            },
            success: function(data){
                global.showNotification("Объявление успешно удалено из избранного",5000);
                addImg.fadeIn("slow");
            }
        });
    });
});

/**
 * Увеличивает показание счетчика обновлений у указанного элемента на панели инструментов
 * @param workbenchItemId
 */
function incrementWorkbenchItemCountBlock(workbenchItemId){
    var selector = "#"+workbenchItemId;
    var el = $(selector).find(".updatesCount").first();
    var oldVal = parseInt(el.text());
    oldVal += 1;
    el.text(oldVal);
}

/**
 * Функция, обновляющая состояние элементов с количеством обновлений на рабочем столе
 */
function updateWorkbenchItemCountBlock(animated){
    $(".workbenchItem").each(function(index,item){
        var container = $(item).find(".updatesCount").first();
        var img = $(item).find("img").first();
        var count = parseInt(container.text());
        if (count <= 0){
            if (animated)
                container.fadeOut("slow");
            else
                container.hide();
        } else {
            if (animated)
                container.fadeIn("slow");
            else
                container.show();
        }
        container.css("right",-5).css("top",-7);
    });
}